<?php

// 使用PHP内置的扩展函数和类来实现一个简单的RPC

/**
 * 客户端
 */


// 定义要远程调用的函数和参数
$functionName = 'add';
$arguments = [2, 3];

// 连接到服务器
$host = 'localhost';
$port = 12345;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $host, $port);

// 将函数调用参数转换为字符串并发送给服务器
$data = $functionName . ' ' . implode(',', $arguments);
socket_write($socket, $data . "\n");

// 接收服务器发送的数据并解析结果
$resultString = socket_read($socket, 1024);
// $result = eval($resultString);
// echo "Result: $result\n";

var_dump($resultString);

// 关闭连接和清理资源
socket_close($socket);

// 在上面的代码中，我们首先定义了要远程调用的函数名和参数。然后，我们创建一个socket并连接到服务器。接下来，我们将函数调用参数转换为字符串并发送给服务器。然后，我们使用socket_read函数接收服务器发送的数据，并使用eval函数将结果解析为变量。最后，我们输出结果并关闭连接。
